package com.efast.dmom.mgmt.dao.les;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.efast.dmom.mgmt.bean.les.LocDlocWhBean;
import com.efast.dmom.mgmt.bean.les.TwInvSkuLoctlStatementBean;
import com.efast.dmom.mgmt.entity.les.TwInvSkuLoctl;
import com.efast.dmom.mgmt.utils.Assist;

/**
 * @author chlp
 */
@Repository
public interface TwInvSkuLoctlDao {

	/**
	 * 库存报表 查询
	 * @return
	 */
	TwInvSkuLoctlStatementBean queryStatement();

	LocDlocWhBean queryParentNo(@Param(value = "tmBasStorageId") Integer tmBasStorageId);

	/**
	 * 获得TwInvSkuLoctl数据的总行数,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	long getTwInvSkuLoctlRowCount(Assist assist);

	/**
	 * 获得TwInvSkuLoctl数据集合,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	List<TwInvSkuLoctl> selectTwInvSkuLoctl(Assist assist);

	/**
	 * 获得一个TwInvSkuLoctl对象,以参数TwInvSkuLoctl对象中不为空的属性作为条件进行查询
	 * 
	 * @param obj
	 * @return
	 */
	TwInvSkuLoctl selectTwInvSkuLoctlByObj(TwInvSkuLoctl obj);

	/**
	 * 通过TwInvSkuLoctl的id获得TwInvSkuLoctl对象
	 * 
	 * @param id
	 * @return
	 */
	TwInvSkuLoctl selectTwInvSkuLoctlById(Integer id);

	/**
	 * 插入TwInvSkuLoctl到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertTwInvSkuLoctl(TwInvSkuLoctl value);

	/**
	 * 插入TwInvSkuLoctl中属性值不为null的数据到数据库
	 * 
	 * @param value
	 * @return
	 */
	int insertNonEmptyTwInvSkuLoctl(TwInvSkuLoctl value);

	/**
	 * 批量插入TwInvSkuLoctl到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertTwInvSkuLoctlByBatch(List<TwInvSkuLoctl> value);

	/**
	 * 通过TwInvSkuLoctl的id删除TwInvSkuLoctl
	 * 
	 * @param id
	 * @return
	 */
	int deleteTwInvSkuLoctlById(Integer id);

	/**
	 * 通过辅助工具Assist的条件删除TwInvSkuLoctl
	 * 
	 * @param assist
	 * @return
	 */
	int deleteTwInvSkuLoctl(Assist assist);

	/**
	 * 通过TwInvSkuLoctl的id更新TwInvSkuLoctl中的数据,包括null值
	 * 
	 * @param enti
	 * @return
	 */
	int updateTwInvSkuLoctlById(TwInvSkuLoctl enti);

	/**
	 * 通过辅助工具Assist的条件更新TwInvSkuLoctl中的数据,包括null值
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateTwInvSkuLoctl(@Param("enti") TwInvSkuLoctl value, @Param("assist") Assist assist);

	/**
	 * 通过TwInvSkuLoctl的id更新TwInvSkuLoctl中属性不为null的数据
	 * 
	 * @param enti
	 * @return
	 */
	int updateNonEmptyTwInvSkuLoctlById(TwInvSkuLoctl enti);

	/**
	 * 通过辅助工具Assist的条件更新TwInvSkuLoctl中属性不为null的数据
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateNonEmptyTwInvSkuLoctl(@Param("enti") TwInvSkuLoctl value, @Param("assist") Assist assist);

}